System Description Primer

System Components

This page lists the different system components that are documented in the remainder of the Concepts section.

Data Structures

The core data structures are:

  1. Addresses: a registry for user account addresses.
  2. Blocks and block headers: top-level data structure.
  3. Deposits: deposits to Fuel from Ethereum.
  4. Inputs: transaction inputs.
  5. Metadata: point to state elements to consume.
  6. Outputs: transaction outputs.
  7. Roots and root headers: commit to a batch of transactions.
  8. Tokens: a registry for token addresses.
  9. Transactions: transactions.
  10. Withdrawals: withdrawals from Fuel to Ethereum.
  11. Witnesses: authorize transactions.

Verifiers

If a fraud proof is submitted to the contract, it first needs to be validated for correct formatting. This is required to ensure that a maliciously-constructed fraud proof can never be processed, otherwise a valid block could be reverted. Parsing fraud proofs is handled by verifiers.

Provers

Once a fraud proof has successfully been parsed by the appropriate verifier modules, it must be processed to prove that fraud occurred (or that the fraud proof is properly formatted but otherwise incorrect). This is handled by provers.

Additional Modules

Outside the core components above, additional optional modules are provided to e.g. improve UX and add more functionality:

  1. Token funnels: ephemeral contracts that accept token deposits without an approve step.